gusucode.com > LTE基带收发仿真系统matlab源码程序 > LTE baseband simulation/mmse_detect.m

    function xEst = mmse_detect(r,H,SNRdB)
% MMSE vblast 接收机 带有干扰抵消
% 输入:r:接收到的信号
%       H:频域信道矩阵
%       SNRdB:SNR 单位dB
% 输出:估计的符号

%  Author:		程式小组(徐萌 张妙 张晓庆)
%  Date:		2010-07-11
%  ==========================================================

SNRreal = (10^(0.1*SNRdB));
[nRx,nTx] = size(H);
hSave = H;
G=(H'*H+1/SNRreal*eye(nTx))\H';
[gk k0]=min(sum(abs(G).^2,2));

w = zeros(nTx,nRx);
k1 = zeros(nTx,1);
xEst = zeros(nTx,1);

for m=1:nTx     
    
    k1(m)=k0;
    w(m,:)=G(k1(m),:);
    y=w(m,:)*r;
    xEst(k1(m),1)=y;
    r = r - xEst(k1(m)) * hSave(:, k1(m));
    H(:,k0)=zeros(nRx,1);
    G=(H'*H+1/SNRreal*eye(nTx))\H';
    for t=1:m
        G(k1(t),:)=inf;
    end
    [gk k0]=min(sum(abs(G).^2,2));
end